//package jcore.jsonrpc.rpcobj;
//
//import java.io.Serializable;
//import java.util.ArrayList;
//import java.util.List;
//
//import javax.servlet.ServletContext;
//
//import jcore.jsonrpc.common.JsonRpcObject;
//
//import org.springframework.web.context.WebApplicationContext;
//import org.springframework.web.context.support.WebApplicationContextUtils;
//
//import com.ag.contactTree.TreeNode;
//import com.ag.contactTree.service.TreeService;
//import com.ag.zhh.service.ContactService;
//import com.ag.zhh.vo.Contact;
//import com.ag.zhh.vo.Dept;
//
///**
// * JsonRpcforJava 远程调用对象 未完成任务： 1.通过nodeId获取负责人和联系人列表(完成) 2.通过CId获取联系人(完成)
// * 
// * @author 张颢铧
// * 
// */
//public class RpcContactTree extends JsonRpcObject implements Serializable {
//
//	public RpcContactTree() {
//
//	}
//
//	/**
//	 * 返回药监内部树根节点的接口对象
//	 * 
//	 * @return
//	 */
//	public Object getMedicineTreeRoot() {
//
//		TreeService treeService = getTreeService();
//
//		// 创建新的树节点方法接口
//		RpcTreeNode rpcTreeNode = new RpcTreeNode();
//
//		TreeNode node = treeService.getMedicineTreeRoot();
//
//		rpcTreeNode.setNodeId(node.getNodeId());
//		rpcTreeNode.setDName(((Dept) node.getBindData()).getDName());
//
//		return rpcTreeNode;
//	}
//
//	/**
//	 * 返回树节点的接口对象通过nodeId
//	 * 
//	 * @return
//	 */
//	public Object getRpcTreeNode(String nodeId) {
//
//		TreeService treeService = getTreeService();
//
//		// 创建新的树节点方法接口
//		RpcTreeNode rpcTreeNode = new RpcTreeNode();
//
//		TreeNode node = treeService.getTreeNodeById(nodeId);
//
//		rpcTreeNode.setNodeId(node.getNodeId());
//		rpcTreeNode.setDName(((Dept) node.getBindData()).getDName());
//
//		return rpcTreeNode;
//	}
//
//	/**
//	 * 返回联系人的接口对象通过CId
//	 * 
//	 * @return
//	 */
//	public Object getRpcContactByCId(String CId) {
//
//		ContactService contactService = getContactService();
//
//		// 创建新的树节点方法接口
//		RpcContact rpcContact = null;
//		try {
//			Contact contact = contactService.findCotnactByCId(CId);
//			// System.out.println(contact.getCName());
//			rpcContact = ContactToRpcContact(contact, rpcContactTree());
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		System.out.println(rpcContact.getCName());
//		return rpcContact;
//		// return "返回路径测试";
//	}
//
//	/**
//	 * 内部类：用于远程调用的树节点方法接口
//	 * 
//	 * @author 张颢铧
//	 * 
//	 */
//	public class RpcTreeNode {
//
//		private String nodeId;
//
//		private String dName;
//
//		public String getNodeId() {
//			return nodeId;
//		}
//
//		public void setNodeId(String nodeId) {
//			this.nodeId = nodeId;
//		}
//
//		public String getDName() {
//			return dName;
//		}
//
//		public void setDName(String dName) {
//			this.dName = dName;
//		}
//
//		public String getParentId() {
//			return getTreeService().getTreeNodeById(nodeId).getParentId();
//		}
//
//		public List getContactsList() {
//			TreeNode node = getTreeService().getTreeNodeById(nodeId);
//			List rpcContacts = new ArrayList();
//
//			for (Contact contact : ((Dept) node.getBindData()).getContacts()) {
//
//				RpcContact rpcContact = ContactToRpcContact(contact,
//						rpcContactTree());
//				rpcContacts.add(rpcContact);
//			}
//
//			return rpcContacts;
//		}
//
////		public List getDeptAdminsList() {
////			TreeNode node = getTreeService().getTreeNodeById(nodeId);
////
////			List rpcDeptAdmins = new ArrayList();
////
////			for (DeptAdmin deptAdmin : ((Dept) node.getBindData())
////					.getDeptAdmins()) {
////				RpcContact rpcContact = DeptAdminToRpcContact(deptAdmin,
////						rpcContactTree());
////				rpcDeptAdmins.add(rpcContact);
////			}
////
////			return rpcDeptAdmins;
////		}
//
//	}
//
//	/**
//	 * 内部类：用于远程调用的通讯录详细信息方法接口
//	 * 
//	 * @author 张颢铧
//	 * 
//	 */
//	public class RpcContact {
//
//		// Fields
//
//		private String CId;
//		private String DId;
//		private int DAdminIf;// 是否负责人的标志位
//		private String CName;
//		private String CVideo;
//		private String CFax;
//		private String CCellphone;
//		private String CTel;
//
//		// Constructors
//
//		// Property accessors
//
//		public String getCId() {
//			return this.CId;
//		}
//
//		public void setCId(String CId) {
//			this.CId = CId;
//		}
//
//		public String getDId() {
//			return this.DId;
//		}
//
//		public void setDId(String DId) {
//			this.DId = DId;
//		}
//
//		public int getDAdminIf() {
//			return DAdminIf;
//		}
//
//		public void setDAdminIf(int adminIf) {
//			DAdminIf = adminIf;
//		}
//
//		public String getCName() {
//			return this.CName;
//		}
//
//		public void setCName(String CName) {
//			this.CName = CName;
//		}
//
//		public String getCVideo() {
//			return this.CVideo;
//		}
//
//		public void setCVideo(String CVideo) {
//			this.CVideo = CVideo;
//		}
//
//		public String getCFax() {
//			return this.CFax;
//		}
//
//		public void setCFax(String CFax) {
//			this.CFax = CFax;
//		}
//
//		public String getCCellphone() {
//			return this.CCellphone;
//		}
//
//		public void setCCellphone(String CCellphone) {
//			this.CCellphone = CCellphone;
//		}
//
//		public String getCTel() {
//			return this.CTel;
//		}
//
//		public void setCTel(String CTel) {
//			this.CTel = CTel;
//		}
//
//	}
//
//	/**
//	 * 返回this——RpcContactTree对象
//	 * 
//	 * @return
//	 */
//	private RpcContactTree rpcContactTree() {
//		return this;
//	}
//
//	/**
//	 * 返回新的rpcTreeNode内部类对象
//	 * 
//	 * @return
//	 */
//	private RpcTreeNode rpcTreeNode() {
//		return new RpcTreeNode();
//	}
//
//	/**
//	 * 返回新的rpcContact内部类对象
//	 * 
//	 * @return
//	 */
//	private RpcContact rpcContact() {
//		return new RpcContact();
//	}
//
//	/**
//	 * 获取树服务类，通过spring的上下文
//	 * 
//	 * @return TreeService树服务类
//	 */
//	private TreeService getTreeService() {
//		ServletContext sc = getRequest().getSession().getServletContext();
//		WebApplicationContext ac = WebApplicationContextUtils
//				.getWebApplicationContext(sc);
//		TreeService treeService = (TreeService) ac.getBean("TreeService");
//		return treeService;
//	}
//
//	/**
//	 * 获取通讯录服务类，通过spring的上下文
//	 * 
//	 * @return ContactService树服务类
//	 */
//	private ContactService getContactService() {
//		ServletContext sc = getRequest().getSession().getServletContext();
//		WebApplicationContext ac = WebApplicationContextUtils
//				.getWebApplicationContext(sc);
//		ContactService contactService = (ContactService) ac
//				.getBean("ContactService");
//		return contactService;
//	}
//
//	/**
//	 * Contact通讯录VO转换成RpcContact内部类对象
//	 * 
//	 * @param contact
//	 * @param rpcContactTree
//	 * @return
//	 */
//	private static RpcContact ContactToRpcContact(Contact contact,
//			RpcContactTree rpcContactTree) {
//
//		RpcContact rpcContact = rpcContactTree.rpcContact();
//
//		rpcContact.setCCellphone(contact.getCCellphone());
//		rpcContact.setCFax(contact.getCFax());
//		rpcContact.setCId(contact.getCId());
//		rpcContact.setCName(contact.getCName());
//		rpcContact.setCTel(contact.getCTel());
//		rpcContact.setCVideo(contact.getCVideo());
//		rpcContact.setDAdminIf(0);
////		if(contact.getDept() != null)
////			rpcContact.setDId(contact.getDept().getDId());
//
//		return rpcContact;
//	}
//
//	/**
//	 * DeptAdmin部门负责人VO转换成RpcContact内部类对象
//	 * 
//	 * @param deptAdmin
//	 * @param rpcContactTree
//	 * @return
//	 */
////	private static RpcContact DeptAdminToRpcContact(DeptAdmin deptAdmin,
////			RpcContactTree rpcContactTree) {
////
////		RpcContact rpcContact = rpcContactTree.rpcContact();
////
////		rpcContact.setCCellphone(deptAdmin.getCCellphone());
////		rpcContact.setCFax(deptAdmin.getCFax());
////		rpcContact.setCId(deptAdmin.getDadminId());
////		rpcContact.setCName(deptAdmin.getCName());
////		rpcContact.setCTel(deptAdmin.getCTel());
////		rpcContact.setCVideo(deptAdmin.getCVideo());
////		rpcContact.setDAdminIf(1);
////		rpcContact.setDId(deptAdmin.getDept().getDId());
////
////		return rpcContact;
////	}
//}
